package com.shujia.day18;

public class Code02EnumOperator {
    public static void main(String[] args) {

        /*
            JDK1.5之后，对于枚举类有个专门的关键字 enum 在当前枚举类中一开始需要有一个; 该分号用于添加枚举的元素
         */

        NewWeekend monday = NewWeekend.MONDAY;  // 可以通过调用元素名称获取当前枚举类的对象

        NewWeekend[] values = NewWeekend.values(); // 可以获取到当前枚举类中的所有元素
        for (NewWeekend value : values) {
            System.out.println(value);
        }

        monday.work();


        // 如果要调用useEnum 方法，那么只能在其他开发人员提供的七个选项中进行选择,限制代码的使用范围 对其进行规范化

        new UseEnum().useEnum(NewWeekend.FRIDAY);

    }
}

class UseEnum{

    public void useEnum(NewWeekend newWeekend){
        System.out.println("必须使用枚举类进行传参");
        newWeekend.work();
    }
}



interface Inter{
    void work();
}

enum NewWeekend  implements Inter {   // 对于枚举类可以实现接口

    /*
         MONDAY("周一","周一要上班，好痛苦...") 调用当前类的构造方法
         并且多个变量值需要用,分开 以;结尾

        对于枚举类可以实现接口
     */

    MONDAY("周一","周一要上班，好痛苦..."){
        @Override
        public void work() {
            System.out.println("周一上班很烦躁，看到老板就想锤他..");
        }
    },


    TUESDAY("周二","周二要上班，还剩四天要放假") {
        @Override
        public void work() {
            System.out.println("周二上班很疲倦，感觉上班像坐牢，期待理想生活，思考人生");
        }
    },
    WEDNESDAY("周三","已经麻木了,上班也还行..") {
        @Override
        public void work() {
            System.out.println("还是好好工作吧，挣钱要紧...");
        }
    },
    THURSDAY("周四","期待周五的到来...") {
        @Override
        public void work() {
            System.out.println("还剩一天，就结束资本家的压榨...");
        }
    },
    FRIDAY("周五","今天晚上去哪嗨,吃点啥") {
        @Override
        public void work() {
            System.out.println("晚上释放自我，犒劳自己，决战到天明。。。");
        }
    },
    SATURDAY("周六","醒来发现一天过去一大半 好可惜") {
        @Override
        public void work() {
            System.out.println("好好休息，感觉生活真美妙...");
        }
    },
    SUNDAY("周日","明天又要周一了，抓紧时间玩..") {
        @Override
        public void work() {
            System.out.println("在幸福生活中，开始焦虑明天有要上班了...");
        }
    };
    /*
        public static final Weekend MONDAY = new Weekend("周一","周一要上班，好痛苦...");
        public static final Weekend TUESDAY = new Weekend("周二","周二要上班，还剩四天要放假");
        public static final Weekend WEDNESDAY = new Weekend("周三","已经麻木了,上班也还行..");
        public static final Weekend THURSDAY = new Weekend("周四","期待周五的到来...");
        public static final Weekend FRIDAY = new Weekend("周五","今天晚上去哪嗨,吃点啥");
        public static final Weekend SATURDAY = new Weekend("周六","醒来发现一天过去一大半 好可惜");
        public static final Weekend SUNDAY = new Weekend("周日","明天又要周一了，抓紧时间玩..");

     */

    String name;
    String info;



    private NewWeekend(String name, String info) {
        this.name = name;
        this.info = info;
    }

    @Override
    public String toString() {
        return "NewWeekend{" +
                "name='" + name + '\'' +
                ", info='" + info + '\'' +
                '}';
    }

//    @Override
//    public void work() {
//
//    }
}